package com.niiwoo.civet.trade.service.local.kaola;


import com.niiwoo.civet.trade.dto.kaola.request.ApplyRequest;
import com.niiwoo.civet.trade.dto.kaola.request.BankCardChangeRequest;
import com.niiwoo.civet.trade.dto.kaola.request.CompensationRequest;
import com.niiwoo.civet.trade.dto.kaola.request.GetRepayResultRequest;
import com.niiwoo.civet.trade.dto.kaola.request.OverdueRepaymentRequest;
import com.niiwoo.civet.trade.dto.kaola.request.PayCompensationNotifyRequest;
import com.niiwoo.civet.trade.dto.kaola.request.PreRepaymentRequest;
import com.niiwoo.civet.trade.dto.kaola.request.ReceiveRepayPlanRequest;
import com.niiwoo.civet.trade.dto.kaola.request.RepaymentRequest;
import com.niiwoo.civet.trade.dto.kaola.response.ApplyResponse;
import com.niiwoo.civet.trade.dto.kaola.response.BaseResponse;
import com.niiwoo.civet.trade.dto.kaola.response.CompensationResponse;
import com.niiwoo.civet.trade.dto.kaola.response.GetOrderStatResponse;
import com.niiwoo.civet.trade.dto.kaola.response.GetRepayResultResponse;
import com.niiwoo.civet.trade.dto.kaola.response.PayCompensationNotifyResponse;
import com.niiwoo.civet.trade.dto.kaola.response.PreRepaymentResponse;
import com.niiwoo.civet.trade.dto.kaola.response.ReceiveRepayPlanResponse;
import com.niiwoo.civet.trade.dto.kaola.response.RepaymentResponse;

/**
 * 考拉网关接口
 * @author lichuanzhi
 * @date 2017-12-26 14:01
 */
 public interface KaoLaLiCaiRequestService {

    /**
     * 查询订单状态
     * @param projectId
     * @param orderId
     * @return
     */
     GetOrderStatResponse getOrderStat(Long projectId, String orderId);

    /**
     * 申请贷款接口
     *
     * @param applyRequest
     * @return
     */
     ApplyResponse apply(ApplyRequest applyRequest);

    /**
     * 提前还款
     * @param preRepaymentRequest
     * @return
     */
     PreRepaymentResponse preRepayment(PreRepaymentRequest preRepaymentRequest);

    /**
     * 正常还款
     * @param repaymentRequest
     * @return
     */
     RepaymentResponse repayment(RepaymentRequest repaymentRequest);

    /**
     * 正常还款
     * @param repaymentRequest
     * @return
     */
     RepaymentResponse overdueRepayment(OverdueRepaymentRequest repaymentRequest);

    /**
     * 逾期代偿
     * @param request
     * @return
     */
     CompensationResponse compensation(CompensationRequest request);
    
    /**
     * 还款结果查询
     * @param request
     * @return
     */
     GetRepayResultResponse getRepayResult(GetRepayResultRequest request);

    /**
     * 还款计划推送
     *
     * @param request
     * @return
     */
    ReceiveRepayPlanResponse receiveRepayPlan(ReceiveRepayPlanRequest request);


    /**
     * ⽤户还代偿信息推送考拉接⼝
     *
     * @param request
     * @return
     */
     PayCompensationNotifyResponse payCompensationNotify(PayCompensationNotifyRequest request);

    /**
     * 换卡请求
     *
     * @param request
     * @return
     */
    BaseResponse bankCardChange(BankCardChangeRequest request);
}
